CSCI 362-01 (8:30 AM) fall 2020

>>>>> ZoomRoom <<<<<

Dr. Bowring

The Good Stuff from CofC CS

Syllabus

Course Description with Outcomes

Textbook Student Resources

Class Share

Schedule:

Date in 2020
Topic Readings due

Assignments due this day

by 8:30 AM

Check This Out Team Project Tasks & Milestones due by 8:30 AM
T 25 Aug
Introductions
The Missing Semester of Your CS Education 11110101111

OpenSource.com

Y Combinator News

TechNews

Internet of Things

Martin Fowler

Tensegrity

Joye to the World

H/FOSS

 

Read this:

Team Term Project Specifications

Final Report

GitHub exercise

R 27 Aug Overview of Software Engineering

Why SE Blogging?

Chapter 1

ACM Code of Ethics


ACM SE Code of Ethics

HW0: Create your blog and blog to introduce yourself. Create a GitHub account if you do not have one.

Blog SubTitle = "HW0: Introduction"

Make linked entry on class share to your blog and github account.

HW1: Ex 1.3, 1.8, 1.9, 1.10

Blog SubTitle = "HW1: Chapter 1"

Learn Git

Git videos (short):
What is VC,
What is Git,
Start Git,
Win with Git

Unit Testing Checklist

Form Teams in class - submit contact info including GitHub account names - via email to bowringj@cofc.edu: names, emails, github account names, etc.; Team names?


Team Exercise

Test Case Definition


Testing Triangle Program

Get familiar with Ubuntu, Git, GitHub, Slack, and VirtualBox

Learn about scripts, beginner bash, advanced bash.

T 01 Sep
Ethical Issues in Software Engineering

Dependable Systems

No Silver Bullet

Kode Vicious

Google Code Repo


Making SE more Ethical

Chapter 10

HW2: 500+ word reflection on No Silver Bullet, Kode Vicious, and Google Code Repo taken together - find common concerns in the articles and reflect upon them.

Blog SubTitle = "HW2: Reflections on software engineering practices"

Charleston Digital Corridor

Customize Team repository at GitHub.com.

Create Team Wiki in your team GitHub repository. Use the wiki to document your team and your project, including a timeline. Place a link to your team's github repository on the class share.

Learn about scripts, beginner bash, advanced bash.

R 03 Sep

Reliability and Safety Engineering

Therac-25 Accidents


2010 Radiation Follies


FBI Auto Warning

Chapter 11

Chapter 12

HW3: Ex 11.4, 11.7, 11.9, 12.5

Blog SubTitle = "HW3: Chapters 11 & 12"

37 Epic Software Failures

11 Most Costly Software Errors in History

 

T 08 Sep

Security and Resilience Engineering

Team Presentations - work in progress

Spacecraft Accidents


FBI Fiasco 2005
FBI Fiasco 2010
FBI Success 2012 FBI NotDone 2014

Why Software Projects Fail

Chapter 13

Chapter 14


HW4: 500+ word reflection to all readings from Sept 3 and Sept 8 including Chapters 13 and 14 - find common concerns in the articles and reflect upon them.

Blog SubTitle = "HW4: Reflections on software failures"

More Software Failures

Planning for Failure

TERM TEAM PROJECT:

Team Term Project Specifications

Task: Evaluate H/FOSS projects and select 1st, 2nd, 3rd candidates. See Deliverable #1 for criteria. Be sure that the code base is designed to compile and run on Linux (no Windows-only projects).

Report: Document your work on the team wiki. Bring these candidates to class and be prepared to summarize why you chose each one.

Note: Each team will make their choice by the end of this class.

NOTE: You are required to use GitHub team repository to store and track your team deliverables and for your team wiki.

R 10 Sep Requirements Engineering

Magical Number 7


Tire Pressure Monitoring System

Spy Car Act of 2015


Test-Driven Development

Chapter 4

HW5: Ex 4.5, 4.6, 4.7; reflections on all of today's readings - find common concerns in the articles and reflect upon them.

Blog SubTitle = "HW5: Chapter 4 and reflections"

Hacked Home

 

T 15 Sept

Team Presentations - work in progress

Invited Talk: Gabrielle Cozart

     

Team Exercise:

All team projects will be built using an open source unix operating system such as Ubuntu. Your first project is to collaborate as a team using the github repository to write a script myList.[script extension] for Unix that lists the top-level directory contents of its containing directory in an html file displayed in a browser. Post a link to your code in your team wiki along with example outputs. Demo in class today - be sure you have a laptop and required cables.

R 17 Sep

Software Processes

 

Chapter 2


Rapid Development Ch 7

The Future of Programming

HW6: Ex 2.1

Blog SubTitle = "HW6: Chapter 2"


Hackathons

Corporate Hackathons

 

T 22 Sep Team Presentations - work in progress      

DELIVERABLE #1:
Task: Checkout or clone project from its repository and build it - if you do not know how to compile the code, ask! Run existing tests and collect results. Evaluate experience and project so far.

Report: This is Chapter 1 of your Final Report. Report on your chosen project and your experiences executing the task above. Document progress on wiki.

Due: [team-name]_deliverable1.PDF in team's GitHub repository

R 24 Sep

System Modeling

Architectural Design

Chapter 5

Chapter 6

HW7: Ex 5.3, 5.5, 5.7, 5.8, 6.4

Blog SubTitle = "HW7: Chapter 5 and 6"

   
T 29 Sep Agile Software Development

Chapter 3
Ch 1 - 4 of: Mythical Man Month


Agile Manifesto
Agile Methods

HW8: 500+ word response to MMM(1-4)

Blog SubTitle = "HW8: Mythical Man Month"

State of Agile 2020

 

R 01 Oct

Software Testing

 

Chapter 8


Intro to Testing

HW9: Ex 8.7, 8.10, reflections on readings

Blog SubTitle = "HW9: Chapter 8 and reflections on testing"

 

Software Analysis

Mutation Testing

 

T 06 Oct

Team Presentations - work in progress

Invited Talk : Brittany I. Johnson, Ph.D.

contact info here

     

DELIVERABLE #2:


Task: Produce a detailed test plan (see p. 217 text) for your project. As part of this plan, you will specify at least 5 of the eventual 25 test cases that you will develop for this software.

Report: This is Chapter 2 of your Final Report. Report on your experiences and provide the details produced in the task above. These details should also include detailed specifications of your test plan and at least 5 of the eventual 25 test cases. Document progress on wiki.

Due: [team-name]_deliverable2.PDF in team's GitHub repository. Be ready to present your testplan in class.

Note: As you are incrementally building a coherent Final Report with each deliverable as a chapter, you may submit the completed document-to-date with the above-specified name.

 

Dr. Johnson is an Assistant Professor in the CS Department at George Mason University. She received her Ph.D. in Computer Science from North Carolina State University (2017), after getting her B.A. in Computer Science from the College of Charleston (2011). Her research focuses on improving developer productivity and satisfaction through evaluating and improving the tools and processes they use to develop software. Her current focus is on software fairness and ethical software engineering practices. Her research is interdisciplinary, cross-cutting with research in software engineering, human-computer interaction, and machine learning.

R 08 Oct

Software Reuse

Chapter 15

HW10: Ex 15.10

Blog SubTitle = "HW10: Chapter 15"

Making Reuse Work

T 13 Oct

Software Evolution

Team Presentations - work in progress

Chapter 9
Legacy Systems

HW11: Ex 9.8, 9.10
Blog SubTitle = "HW11: Chapter 9"

DELIVERABLE #2A: Review changes as needed in deliverable 2.

R 15 Oct Component-Based Software Engineering
Chapter 16

HW12: Ex 16.9

Blog SubTitle = "HW12: Chapter 16"

 

T 20 Oct

Distributed Software Engineering

Chapter 17

HW13: Ex 17.10

Blog SubTitle = "HW13: Chapter 17"

   
R 22 Oct Service-Oriented Architecture
Chapter 18

HW14: Ex 18.4
Blog SubTitle = "HW14: Chapter 18"

   
T 27 Oct Systems Engineering
Chapter 19

HW15: Ex 19.3
Blog SubTitle = "HW15: Chapter 19"

 

R 29 Oct

Systems of Systems

Invited Talk : Joye Nettles

Slides for Talk

email

Chapter 20 HW16: Ex 20.10
Blog SubTitle = "HW16: Chapter 20"
Joye Nettles, a 2015 Computer Science graduate of the College of Charleston, is the founder of Joye to the World and a Senior Consultant Developer at Tensure Consulting. When it comes to technology, Joye is most passionate about frontend development, automated testing, and building beautiful, scalable systems. Her overall goal is to find new ways to empower her community and change the world using technology!
T 03 Nov V O T E !
R 05 Nov

Team Presentations - work in progress

 

 

HW17: Blog reflections on team progress.

Blog SubTitle ="HW17: Team Progress I"

 

DELIVERABLE #3:

Preparation: For those teams that have been instructed to re-work their test plans, do so and resubmit with this deliverable.

Task: Design and build an automated testing framework that you will use to implement your test plan per the Team Term Project Specifications document.

Report: This is Chapter 3 of your Final Report. Report on your experiences and provide the details produced in the task above. These details should also include an architectural description of your framework, full how-to documentation, a set of at least 5 of the eventual 25 test cases. Document progress on wiki.

Due: [team-name]_deliverable3.PDF in team's GitHub repository; Be ready to demonstrate your framework in class.

Note: As you are incrementally building a coherent Final Report with each deliverable as a chapter, you may submit the completed document-to-date with the above-specified name.

T 10 Nov

Real-time Software Engineering

Project Management

Chapter 21

Chapter 22

HW18: Ex 21.4, 22.6
Blog SubTitle = "HW18: Chapter 21 and Chapter 22"

Refactoring  
R 12 Nov Project Planning Chapter 23 HW19: Ex 23.6
Blog SubTitle = "HW19: Chapter 23"
   
T 17 Nov Team Presentations - work in progress

HW20: Blog reflections on team progress.

Blog SubTitle = "HW20:Team Progress II"

 

DELIVERABLE #4:

Preparation: Make changes as directed.

Task: Complete the design and implementation of your testing framework as specified in Deliverable #3. You are now ready to test your project in earnest. You will create 25 test cases that your framework will automatically use to test your H/FOSS project.

Report: This is Chapter 4 of your Final Report. Report on your experiences and provide the details produced in the task above. This is your opportunity to get your report organized into a professional-quality deliverable. Document progress on wiki.

Due: [team-name]_deliverable4.PDF in team's GitHub repository; Be ready to demonstrate your framework in class.

Note: As you are incrementally building a coherent Final Report with each deliverable as a chapter, you may submit the completed document-to-date with the above-specified name.

 

R 19 Nov Quality Management Chapter 24 HW21: Ex 24.6
Blog SubTitle = "HW21: Chapter 24"
 


T 24 Nov

Configuration Management

Chapter 25 In Class: Online Course Evaluations

Deliverable #5:

Task: Design and inject 5 faults into the code you are testing that will cause at least 5 tests to fail, but hopefully not all tests to fail. Exercise your framework and analyze the results.

Report: This is Chapter 5 of your Final Report. You will provide a detailed description of exactly what you changed in the code so that I can duplicate the faults and get the same results you do. Identify the tests you are planning to have fail. Report on your experiences and lessons learned. Document progress on wiki.

Due: [team-name]_deliverable5.PDF in team's GitHub repository; Be ready to demonstrate your framework in class.

Note: As you are incrementally building a coherent Final Report with each deliverable as a chapter, you may submit the completed document-to-date with the above-specified name.

R 26 Nov T H A N K S G I V I N G
R 03 Dec Team Project Presentations part I   Final Report
T 08 Dec FINAL: 10:30 AM - 12:30 PM: Team Project Presentations part II
Tues 08 Dec 6 PM: PDF of BLOG as [lastName]_Blog.PDF; email to bowringj@cofc.edu subject CSCI362